package SingleMode;

/**
 * @author : ZhuQi
 * @version : 时间:2022/8/3 21:27 版本:
 * 单利模式
 * 双层检查单利模式
 *  volatile 防止指令重排
 *  synchronized 进行加锁
 *  原因：创建对象不是原子性操作，1 申请空间 2 初始化对象 3 引用赋值
 */
public class SingleMode {

    static volatile private SingleMode singleMode;

    static {
        if (singleMode == null) {
            synchronized (SingleMode.class) {
                if (singleMode == null) {
                    singleMode = new SingleMode();
                }
            }
        }
    }

}
